package pt.ipleiria.estg.dei.ei.es2.bio;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.test.ActivityInstrumentationTestCase2;
import android.test.ActivityTestCase;
import android.widget.TextView;

import com.robotium.solo.Solo;

/**
 * Created by Ricardo on 05/03/2015.
 */
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
    private Solo solo;

    public MainActivityTest(){
        super(MainActivity.class);

    }

    @Override
    public void setUp() throws Exception {
        solo = new Solo(getInstrumentation(),getActivity());
    }

    @Override
    public void tearDown() throws Exception {
        solo.finishOpenedActivities();
    }

    //Dado que estou na aplicação,
    // Quando pressiono o botão "I'm here"
    // E as informações do meu contacto estão preenchidas (pelo menos nome e email),
    //Então deve ser-me exibida uma mensagem de confirmação da activação desta funcionalidade.
    public void testConfirmationDialog() throws Exception {
        goToConfirmationDialong();

        assertTrue("-----Não foi encontrado o titulo da AlertDialog------",solo.searchText(getActivity().getString(R.string.confirmationTittle))) ;
    }

    private void goToConfirmationDialong() {
        solo.unlockScreen();
        solo.clickOnActionBarItem(R.id.action_checkin);
    }

    //Dado que estou na mensagem de confirmação da funcionalidade "I'm here",
    //Quando pressiono no botão "Sim" e tenho rede,
    //Então os meus dados devem ser submetidos e partilhados com os restantes participantes que activaram a funcionalidade "I'm here"
    // e o botão deve mudar para o estado activo.
    public void testCheckIn()throws Exception{
        goToConfirmationDialong();
        solo.clickOnButton(getActivity().getString(R.string.okBtn));
        solo.waitForActivity(ParticipantsList.class,3000);
        solo.assertCurrentActivity("--------Não foi para a lista de participantes------",ParticipantsList.class);

        //verifica se o icon mudou para o de grupo

        TextView v =(TextView)getActivity().findViewById(R.id.action_checkin);

        Bitmap expected = ((BitmapDrawable)getActivity().getDrawable(R.drawable.ic_action_group)).getBitmap();
        Bitmap actual = ((BitmapDrawable)v.getCompoundDrawables()[0]).getBitmap();

        assertTrue("The icon has not changed",actual.sameAs(expected));


    }


}
